#ifndef PROCESSORSTATE_H
#define PROCESSORSTATE_H

#include "crossbit/common.h"

namespace crossbit {
				class MemoryImage;
				// The Simulated Model of Source-Machine Processor State
				class ProcessorState {
								public:
												virtual ~ProcessorState() {}


												// Get the memory address of the simulated register.
												virtual XTMemAddr get(XTRegNum reg){} ;
												virtual XTMemAddr fpGet(XTRegNum reg) {};

												// Get the value of the simulate register
												virtual XTInt32 reg(XTRegNum reg)
												{
												}

												virtual XTInt32 fpReg(XTRegNum reg) {};

												// Set the value of simulated register
												virtual void put(XTRegNum reg, XTInt32 value) {};
												virtual void fpPut(XTRegNum reg, XTInt32 value) {} ;

												// Get the number of *general-purpose* registers
												virtual int size() {};
												virtual int fpSize() {};

												virtual void dump() {};

				};
}

#endif
